#-------------------------------------------------------------------------------

# Compilateur et Flags
CC=gcc
CFLAGS= -Wall -ansi -pedantic -posix -pthread

# Repertoire de Copilation
COMPILDIR=../../compilationOS

# Repertoire des Objects
OBJECTDIR=$(COMPILDIR)/objets

# Repertoire des Executables
EXECDIR=$(COMPILDIR)/execs

default: all

#-------------------------------------------------------------------------------

help:
	clear
	@echo "\n\t==================    Help - Makefile   ========================"
	@echo "\n\t* Pour compiler touts les fichiers, tapez << make all >>\n"
	@echo "\t* Il est  aussi possible de compiler seulement  un executable en"
	@echo "\t  tapant  << make NON >>, ou  NON  doit etre remplace par 'proc',"
	@echo "\t  'mmu' ou 'os'.\n"
	@echo "\t* Tapez  << make clean >>  pour  effacer  les  objets  et  les"
	@echo "\t  executables."
	@echo "\n\t================================================================"
	@echo " "

#-------------------------------------------------------------------------------

# Pre-compilation:
.pre:
	clear
	@echo "\n\t====>  Creation des repertoirs\n"
	mkdir -p $(COMPILDIR)
	mkdir -p $(OBJECTDIR)
	mkdir -p $(EXECDIR)
	@echo "\n\t====>  Compilation\n"

#-------------------------------------------------------------------------------

# Post-compilation:
.post:
	@echo "\n\t====>  Fin de la compilation\n"

#-------------------------------------------------------------------------------

# Compiler chaque executable
_proc: .pre .make_proc .post
_mmu:  .pre .make_mmu .post
_os:   .pre .make_os .post

#-------------------------------------------------------------------------------

# Compiler tout
all: .pre .make_proc .make_mmu .make_os .post

#-------------------------------------------------------------------------------

# Effacer les fichiers compile's
clean:
	clear
	@echo "\n\t====>  Effacement des Fichiers\n"
	rm -f -v $(OBJECTDIR)/* $(EXECDIR)/*
	@echo " "

#-------------------------------------------------------------------------------

# Implemetations
include Makefile-proc.mk
include Makefile-mmu.mk
include Makefile-os.mk

#-------------------------------------------------------------------------------
